package com.wjm.api.TransStream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Data:2022年07月22日
 * Author:wjm
 * Content: InputStreamReader（转换流）
 *
 *
 *  InputStreamReader的构造方法可以传入指定的字符集如utf-8等，也可以不传入，会使用系统默认的字符集
 *  FileReader(字符流)是 InputStreamReader的子类已经实现了字符字节的转化，一般业务场景都是使用字符流
 *
 *  注意：
 *      如果程序运行后，文件输出的内容是乱码，说明一定是字符集不匹配造成的。
 *
 */
public class InputStreamReaderDemo {
    public static void main(String[] args) throws IOException {
        //创建字节流对象
        FileInputStream fileInputStream = new FileInputStream("f.txt");
        //创建转换流：字节-字符
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"utf-8");

        //声明一个末尾标识
        int len = -1;
        //读数据
        while ((len = inputStreamReader.read()) != -1){
            System.out.print((char)len);
        }

        //关闭流连接，释放资源
        inputStreamReader.close();

    }
}
